-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

=============================================================================
FreeBSD-SA-06:26.gtar                                      Security Advisory
                                                          The FreeBSD Project

Topic:          gtar name mangling symlink vulnerability

Category:       contrib
Module:         contrib_tar
Announced:      2006-12-06
Credits:        Teemu Salmela
Affects:        FreeBSD 4.x and 5.x releases
Corrected:      2006-12-06 09:16:17 UTC (RELENG_5, 5.5-STABLE)
                2006-12-06 09:16:41 UTC (RELENG_5_5, 5.5-RELEASE-p9)
                2006-12-06 09:17:09 UTC (RELENG_4, 4.11-STABLE)
                2006-12-06 09:18:02 UTC (RELENG_4_11, 4.11-RELEASE-p26)
CVE Name:       CVE-2006-6097

For general information regarding FreeBSD Security Advisories,
including descriptions of the fields above, security branches, and the
following sections, please visit <URL:http://security.FreeBSD.org/>.

I.   Background

GNU tar (gtar) is a utility to create and extract "tape archives",
commonly known as tar files.  GNU tar is included in FreeBSD 4.x as
/usr/bin/tar, and in FreeBSD 5.x as /usr/bin/gtar.

II.  Problem Description

Symlinks created using the "GNUTYPE_NAMES" tar extension can be
absolute due to lack of proper sanity checks.

III. Impact

If an attacker can get a user to extract a specially crafted tar
archive the attacker can overwrite arbitrary files with the
permissions of the user running gtar.  If file system permissions
allow it, this may allow the attacker to overwrite important system
file (if gtar is being run as root), or important user configuration
files such as .tcshrc or .bashrc, which would allow the attacker to
run arbitrary commands.

IV.  Workaround

Use "bsdtar", which is the default tar implementation in FreeBSD 5.3
and higher.  For FreeBSD 4.x, bsdtar is available in the FreeBSD Ports
Collection as ports/archivers/libarchive.

V.   Solution

NOTE: The solution described below causes GNU tar to exit with an error
when handling an archive with GNUTYPE_NAMES entries.  The FreeBSD
Security Team does not consider this to be a significant regression,
since GNUTYPE_NAMES has not been used for many years and is not
supported by other archival software such as libarchive(3); but the
original (insecure) behaviour can be retained by running GNU tar with
the newly added --allow-name-mangling option.

Perform one of the following:

1) Upgrade your vulnerable system to 4-STABLE, or 5-STABLE, or to the
RELENG_5_5 or RELENG_4_11 security branch dated after the correction
date.

2) To patch your present system:

The following patches have been verified to apply to FreeBSD 4.11 and
5.5 systems.

a) Download the relevant patch from the location below, and verify the
detached PGP signature using your PGP utility.

# fetch http://security.FreeBSD.org/patches/SA-06:26/gtar.patch
# fetch http://security.FreeBSD.org/patches/SA-06:26/gtar.patch.asc

b) Execute the following commands as root:

# cd /usr/src
# patch < /path/to/patch
# cd /usr/src/gnu/usr.bin/tar
# make obj && make depend && make && make install

VI.  Correction details

The following list contains the revision numbers of each file that was
corrected in FreeBSD.

Branch                                                           Revision
  Path
- -------------------------------------------------------------------------
RELENG_4
  src/contrib/tar/src/common.h                                    1.2.2.2
  src/contrib/tar/src/extract.c                                   1.4.2.4
  src/contrib/tar/src/tar.c                                       1.2.2.3
RELENG_4_11
  src/UPDATING                                             1.73.2.91.2.27
  src/sys/conf/newvers.sh                                  1.44.2.39.2.30
  src/contrib/tar/src/common.h                               1.2.2.1.10.1
  src/contrib/tar/src/extract.c                               1.4.2.3.8.1
  src/contrib/tar/src/tar.c                                   1.2.2.2.6.1
RELENG_5
  src/contrib/tar/src/common.h                                   1.2.10.1
  src/contrib/tar/src/extract.c                                   1.6.8.1
  src/contrib/tar/src/tar.c                                       1.3.4.1
RELENG_5_5
  src/UPDATING                                             1.342.2.35.2.9
  src/sys/conf/newvers.sh                                  1.62.2.21.2.11
  src/contrib/tar/src/common.h                                   1.2.22.1
  src/contrib/tar/src/extract.c                                  1.6.20.1
  src/contrib/tar/src/tar.c                                      1.3.16.1
- -------------------------------------------------------------------------

VII. References

http://marc.theaimsgroup.com/?l=full-disclosure&m=116414883029517
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-6097

The latest revision of this advisory is available at
http://security.FreeBSD.org/advisories/FreeBSD-SA-06:26.gtar.asc
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.3 (FreeBSD)

iD8DBQFFdo1YFdaIBMps37IRAsqUAKCFRV7yICNP8NyC/3+uHUTOKDrxWQCeIJ5a
HsY0N8aR6FoEiFYV/y5fO4k=
=0/ws
-----END PGP SIGNATURE-----
